import fs from 'fs';
import path from 'path';
import image from "../model/image.js";
import {
    createAGroupFolder,
    isGroupExist,
    isPlayerExist,
    PLUGIN_PATH,
    getPlayerData,
    storagePlayerData,
    isbeibao,
    beibaoData,
    get_beibao_img
} from '../model/function.js';

export class xdxz_user extends plugin {
    constructor() {
        super({
            name: '[xdxz]用户信息',
            dsc: '用户交互',
            event: 'message',
            priority: 9999999999,
            rule: [
                { 
                    reg: /^#?加入小镇$/,
                    fnc: 'user'
                },{ 
                    reg: /^#?我的背包$/,
                    fnc: 'userbb'
                }
            ]
        })
    }

    async user(e) {
        if (!e.isGroup) {
            return e.reply(['该游戏只能在群内使用']);
        }

        const ID = [e.user_id, e.group_id];

        // 检查群组和玩家是否存在，不存在则创建
        if (!isGroupExist(ID[0])) {
            createAGroupFolder(ID[1]);
        }
        if (!isPlayerExist(ID[1], ID[0])) {
            storagePlayerData(ID[1], ID[0], { 
                xingbi: 250,
                value: 100,
                spouse: '',
                tili:100,
                jingli:100,
                jinengdian: 0,
                jineng: ''
                });
        }
        if (!isbeibao(ID[1], ID[0])) {
            beibaoData(ID[1], ID[0],{
                "饮料": [],
                "食物": []
            });
        }
        try {
            // 解析 JSON 数据
            const jsonData = await getPlayerData(ID[1], ID[0]);
            // 提取用户信息
            const user_xingbi = jsonData.xingbi;
            let user_wp = jsonData.article;
            const user_sj = jsonData.value;
            let user_lp = jsonData.spouse;
            const user_tl = jsonData.tili;
            const user_jl = jsonData.jingli;
            const user_jnd = jsonData.jinengdian;
            let user_jn = jsonData.jineng;
            const userqq = e.user_id;
            const username = e.nickname;
            switch(user_wp){
                case `[]`:
                user_wp = '空空如也';
                break;
            }
            switch(user_lp){
                case "":
                user_lp = '无';
                break;
            }
            switch(user_jn){
                case "":
                user_jn = '无';
                break;
            }

            // 假设 image 函数是一个异步函数，用于生成用户信息的图片
            const { img } = await image(e, 'user', 'user', {
                userqq,
                username,
                user_xingbi,
                user_wp,
                user_sj,
                user_lp,
                user_tl,
                user_jl,
                user_jnd,
                user_jn
            });

            // 构建回复消息
            let msg = [
                `欢迎来到星动小镇\n`,
                img // 假设 img 是一个有效的图片链接或 base64 编码的图片数据
            ];

            // 回复用户
            e.reply(msg, true);
            return true;
        } catch (err) {
            // 错误处理
            console.error('无法读取或解析用户数据文件:', err);
            e.reply(['读取用户数据时出现错误，请稍后再试。']);
        }
    }
    async userbb(e) {
        if (!e.isGroup) {
            return e.reply(['该游戏只能在群内使用']);
        }
        const ID = [e.user_id, e.group_id];
        if (!isPlayerExist(ID[1], ID[0])) {
            e.reply(`笨蛋！我在小镇里没找到你的背包？(请先#加入小镇)`,true);
            return;
        }
        let img = await get_beibao_img(ID[1], ID[0],e);
        e.reply(img,true);
        return;
    }
}